Group communication protocol designed for multicast communication may be used to communicate messages between endpoints forming a group. Communication endpoints can be processes or objects, or any entity that can send and receive messages to/from a group.
A flush protocol forces group members to send all their pending message prior a predetermined event. The process of flushing acquiesses the cluster so that state transfer or a join can be achieved. However, a view of members of a group may be out of sync with the real status of each member as a result of a process of a member crashing. As such, it would be desirable to provide a flush protocol that support virtual synchrony.